Specify learned search for DSE and Place and Route - #12
Open
dkupsh wants to merge 1 commit into
Open
Conversation
Add nine ML search documents split into a shared core and two concrete searches. ML Environment Core, ML Model Core, and ML Training Core own what every learned search shares: graph observation projection, action indexing over a live enumeration, episode accounting, the integer reward boundary, the disjoint-union batch and graph-transformer trunk, and the run identity and checkpoint boundary. The DSE and PnR environment, model-architecture, and training documents own their own decision spaces on top of that core, and own no legality, mappability, or objective fact. Name the one intermediate the search harness needs from the Fabric pipeline. VerifiedFabricClosure is the value after independent reverification and before ArtifactStore::put, so a harness may evaluate and discard a candidate without publishing it. It is a transient in-process value, not an Artifact family, a persistent schema, or a second identity authority, and it gives the ADG Builder no second finalization path. Add SearchPolicy.realization_move_radius to Place and Route. Bounded(r) forms a realization-binding proposal domain rather than filtering a draw taken from one, so a radius-emptied anchor is absent instead of drawn and retried. It is a search preference and never a legality authority, and movableDecisionCount now counts the proposal domain, which coincides with A(M,C,S) under Unbounded. Record Ray as the stack's one modified dependency. The Loom-owned fork at externals/ray carries a graph-space sampler and connector patch that the ML environment contract requires, an upgrade pins both the fork commit and the upstream release it was rebased onto, and the exact Gymnasium and PyTorch versions the ML documents target are pinned in the stack rather than in the documents that consume them. Documentation only; no code or test changes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the ML search specification set and the three contract changes elsewhere in the stack that it depends on. Documentation only; no code or test changes.
Nine ML search documents
Split into a shared core and two concrete searches.
Core — what every learned search shares, defining no design space and no policy head of its own:
spec-ml-core-environment.md— graph observation projection, action indexing over a live enumeration, episode accounting, the integer reward boundary, reproducible parallel samplingspec-ml-core-model.md— disjoint-union graph batching, encoder inputs, the graph-transformer trunk, graph context, value head, masking, action distribution, checkpoint boundaryspec-ml-core-training.md— immutable component config views, algorithm binding and multi-stage handoff, exact hyperparameters and schedules, test-set execution, run identityDSE —
spec-ml-dse-environment.md,spec-ml-dse-model-architecture.md,spec-ml-dse-training.md: typed design decisions over onefabric.moduleorfabric.system, the hierarchical policy head over them, and the PPO run plus offline corpus that fits it.PnR —
spec-ml-pnr-environment.md,spec-ml-pnr-model-architecture.md,spec-ml-pnr-training.md: one exact Spatial PnR invocation as a sequence of typed Place and Route Actions, a two-factor policy head, and a two-stage run that imitates an annealer's demonstrations before going online.In both searches the learner is a proposal policy over decisions some other owner already defined. No legality, mappability, or objective fact moves into these documents.
docs/rationales/ml.mdrecords why that boundary sits where it does and what was rejected on either side.Supporting contract changes
VerifiedFabricClosure(spec-fabric-artifact.md,spec-adg-builder.md) — names the value that exists after independent reverification and beforeArtifactStore::put, so a search harness can evaluate a candidate it may discard without publishing it. It is a transient in-process value, not an Artifact family, a persistent schema, or a second identity authority, and the Builder gains no second finalization path from it.SearchPolicy.realization_move_radius(spec-pnr.md) —Bounded(r)forms a realization-binding proposal domain rather than filtering a draw taken from one, so a radius-emptied anchor is absent instead of drawn and retried. It is a search preference and never a legality authority; an empty neighborhood is notProvenInfeasible.movableDecisionCountnow counts the proposal domain, which coincides withA(M,C,S)underUnbounded. Every builtin profile selectsUnbounded.Ray as the stack's one modified dependency (
spec-loom-stack.md) — the Loom-owned fork atexternals/raycarries a graph-space sampler and connector patch that the ML environment contract requires. An upgrade pins both the fork commit and the upstream release it was rebased onto, since the patch stack is the difference between the two. The exact Gymnasium and PyTorch versions the ML documents target are pinned in the stack rather than in the documents that consume them.🤖 Generated with Claude Code